package cn.codecrab.ai.langchain4j.assistant;

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

/**
 * @author 王刚
 * @since 2025年05月10日 12:57
 */
@AiService(wiringMode = AiServiceWiringMode.EXPLICIT, chatModel = "qwenChatModel", chatMemoryProvider = "mongoChatMemoryProvider", tools = "calculatorTools")
public interface QwenAssistant {

    String chat(String userMessage);

    @SystemMessage("你是我的好朋友，请用东北话回答问题")
    String chat(@MemoryId String memoryId, @UserMessage String userMessage);

    @SystemMessage("你是我的好朋友，请用东北话回答问题，你今年{{age}}岁了")
    String chat(@MemoryId String memoryId, @UserMessage String userMessage, @V("age") int age);

    @SystemMessage("{{systemPromptWord}}")
    String chat(@MemoryId String memoryId, @UserMessage String userMessage, @V("systemPromptWord") String systemPromptWord);

}
